Hyper Text Markup Language or HTML is synonymous with the Internet and the World Wide Web (WWW). HTML allows structural markup of WWW or ‘Web’ documents. XML or extensible Markup Language is well known in the art as a document markup language which offers human-readable semantic markup and is also machine-readable. As a result, XML provides the capability to create, parse and process networked data.
XML documents are composed of entities, which are storage units containing text and/or binary data. Text is composed of character streams that form both the document's character data content and the document's meta-data markup. The markup describes the document's storage layout and logical structure. XML also provides a markup mechanism to impose constraints on the storage layout and logical structure of documents, and it provides mechanisms that can be used for strong typing.
In style and structure, XML documents look quite similar to HTML documents. However, when a Web server with XML content prepares data for transmission, the Web server must generate a context wrapper with each XML fragment, including pointers to an associated Document Type Definition (DTD) and one or more style sheets for formatting. Clients for the Web server that process XML must be able to unpack the content fragment, parse the fragment in the context according to the DTD (if needed), render (if needed) in accordance with the specified style sheet guidelines, and correctly interpret the hypertext semantics (e.g. links) associated with each of the different document tags. It is understood that a DTD is not required for an XML document, instead, the author can simply use an application-specific tagset. However, a DTD is useful because it allows applications to validate the tagset for proper usage. The DTD specifies the set of required and optional elements and their attributes for documents to conform to that type. In addition, the DTD specifies the names of the tags and the relationships among elements in a document, for example, nesting of elements.
One of the main issues during the development of XML was expressing data stored in XML documents into various formats. This has given rise to the development of languages and standards such as XSL and XSLT from W3C. By using an XSL style sheet one is able to create an HTML representation of an XML document. Similarly, XSL style sheets are used to transform XML documents into an HTML representation. XSL implementations suffer two principal limitations. First, XSLT requires the definition of rules to transform specific types of XML elements into some other type of XML like structure. Although the result may simply comprise a stream, the navigation rules must be defined based on types and the execution of the navigation rules is based on the degree of uniqueness of the navigation. In other words, the execution is not a simple procedural operation. Secondly, XSLT has no formatting capability which means that formatting is performed using flow/format objects in XSL and is geared towards HTML forming. Therefore, the XSL standards fall short for generating code or non-*ML output from a data model.
Another issue is concerned with the transformation of XML data. Frequently, XML data needs to be transformed into another valid XML format. This often comprises an update activity not a creation activity. The updates are made to specific pre-existing XML data, for example, converting selected strings into an alternate format, which is not the same as creating a new document. To be effective, the transformation needs to include an efficient navigation mechanism.
Accordingly, there remains a need for a mechanism for navigating a data model and extracting specific data from the data model.